]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
network: Remove setActiveConnection/clearActiveConnection
authorJasper St. Pierre <jstpierre@mecheye.net>
Sat, 27 Apr 2013 01:44:59 +0000 (21:44 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Wed, 12 Jun 2013 20:57:56 +0000 (16:57 -0400)
This can be more easily achieved by listening for changes to the
device's active-connection property. VPN will still need support to
track active connections, as it does not have an associated
device. But as VPN can track multiple active connections, the names
"set" and "clear" don't quite fit. Rename them to the more-standard
"add" and "remove".

https://bugzilla.gnome.org/show_bug.cgi?id=701954

js/ui/status/network.js

index e587b5485fee4c3cbc95c579d4de34dbc0aced63..c820a54450c9518030752d507a96b517de93ff45 100644 (file)
@@ -302,6 +302,7 @@ const NMDevice = new Lang.Class({
             this.device = device;
             this.device._delegate = this;
             this._stateChangedId = this.device.connect('state-changed', Lang.bind(this, this._deviceStateChanged));
+            this._activeConnectionChangedId = this.device.connect('notify::active-connection', Lang.bind(this, this._activeConnectionChanged));
         } else if (this.device) {
             this.device._delegate = null;
 
@@ -311,6 +312,10 @@ const NMDevice = new Lang.Class({
                 GObject.Object.prototype.disconnect.call(this.device, this._stateChangedId);
                 this._stateChangedId = 0;
             }
+            if (this._activeConnectionChangedId) {
+                GObject.Object.prototype.disconnect.call(this.device, this._activeConnectionChangedId);
+                this._stateChangedId = 0;
+            }
             if (this._carrierChangedId) {
                 GObject.Object.prototype.disconnect.call(this.device, this._carrierChangedId);
                 this._carrierChangedId = 0;
@@ -357,11 +362,9 @@ const NMDevice = new Lang.Class({
         return this.device && this.device.state == NetworkManager.DeviceState.ACTIVATED;
     },
 
-    clearActiveConnection: function(activeConnection) {
-        this.setActiveConnection(null);
-    },
+    _activeConnectionChanged: function() {
+        let activeConnection = this.device.active_connection;
 
-    setActiveConnection: function(activeConnection) {
         if (activeConnection == this._activeConnection)
             // nothing to do
             return;
@@ -830,7 +833,7 @@ const NMDeviceWireless = new Lang.Class({
                 this._activeNetwork = this._networks[res.network];
         }
 
-        // we don't refresh the view here, setActiveConnection will
+        // we don't refresh the view here, _activeConnectionChanged will
     },
 
     _getApSecurityType: function(accessPoint) {
@@ -1319,7 +1322,7 @@ const NMVPNSection = new Lang.Class({
         }
     },
 
-    clearActiveConnection: function(activeConnection) {
+    removeActiveConnection: function(activeConnection) {
         let pos = this._findConnection(activeConnection.uuid);
         if (pos < 0)
             return;
@@ -1334,7 +1337,7 @@ const NMVPNSection = new Lang.Class({
         }
     },
 
-    setActiveConnection: function(activeConnection) {
+    addActiveConnection: function(activeConnection) {
         let pos = this._findConnection(activeConnection.uuid);
         if (pos < 0)
             return;
@@ -1777,10 +1780,8 @@ const NMApplet = new Lang.Class({
 
         for (let i = 0; i < closedConnections.length; i++) {
             let a = closedConnections[i];
-            if (a._primaryDevice) {
-                a._primaryDevice.clearActiveConnection(a);
-                a._primaryDevice = null;
-            }
+            if (a._type == NetworkManager.SETTING_VPN_SETTING_NAME)
+                this._vpnSection.removeActiveConnection(a);
             if (a._inited) {
                 a.disconnect(a._notifyStateId);
                 a.disconnect(a._notifyDefaultId);
@@ -1839,14 +1840,13 @@ const NMApplet = new Lang.Class({
                 active_vpn = a;
 
             if (!a._primaryDevice) {
-                if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME)
+                if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME) {
                     // This list is guaranteed to have one device in it.
                     a._primaryDevice = a.get_devices()[0]._delegate;
-                else
+                } else {
                     a._primaryDevice = this._vpnSection;
-
-                if (a._primaryDevice)
-                    a._primaryDevice.setActiveConnection(a);
+                    this._vpnSection.addActiveConnection(a);
+                }
 
                 if (a.state == NetworkManager.ActiveConnectionState.ACTIVATED
                     && a._primaryDevice && a._primaryDevice._notification) {